home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part1 / 9751 < prev    next >
Encoding:
Text File  |  1996-08-05  |  1.2 KB  |  35 lines

  1. Path: ppp78.micronet.fr!user
  2. From: fgrieu@micronet.fr (Franτois Grieu)
  3. Newsgroups: comp.arch.arithmetic,comp.lang.c,comp.lang.c++
  4. Subject: Re: Access carry flag from C
  5. Date: Mon, 04 Mar 1996 11:43:58 +0100
  6. Organization: Innovatron
  7. Message-ID: <fgrieu-0403961143580001@ppp78.micronet.fr>
  8. References: <Dn1C9z.DGv.0.net@indra.com> <824853272snz@genesis.demon.co.uk> <4gqj0d$d6p@airdmhor.gen.nz> <825377932snz@genesis.demon.co.uk> <4h1veoINNlns@anvil.ugrad.cs.ubc.ca>
  9. NNTP-Posting-Host: ppp19.micronet.fr
  10. X-Newsreader: Yet Another NewsWatcher 2.1.2
  11.  
  12. In article <Dn1C9z.DGv.0.net@indra.com>,
  13. Steve Sullivan <sullivan@indra.com> wrote:
  14.  
  15. > Is it possible to determine if a fixed point overflow has
  16. > occurred from within C?  For example:
  17. >    i = j + k;
  18. >    if (overflowed) ....;
  19.  
  20. For the purprose of doing multiple precision arithmetic, the following
  21. trick works across many machines and compilers, including 80x86, 680x0, PPCs
  22.  
  23. unsigned long yl,yh;  /* double_unsigned_long_int y */
  24. unsigned long x;
  25.  
  26. /* add x to double_unsigned_long_int variable y */
  27.    if (x + yl < yl) ++yh; /* test for overflow on next line */
  28.    yl += x;
  29.  
  30.  
  31. (I missed a lot of this thread, so maybe this has already been posted)
  32.  
  33. -- 
  34. Francois Grieu                               email:fgrieu@micronet.fr
  35.